A Raster Image Processor (RIP) is a component that can be found in some printers. An RIP receives data in a description language, such as, for example, Postscript, PCL, or PDF and converts such data to a bitmap or raster image. Raster image processing can be accomplished in two ways: as software running as part of an operating system or as a special microprocessor within the printer. Inexpensive printers often utilize a solution referred to as host-based printing, which is implemented in the operating system. More expensive printers, and those that support PCL, Postscript or a similar language typically include an actual raster image processor chip inside the printer.
During the development of documents, it is common for a designer to design a document having background images or graphics along with small tiny noise-like vector objects (e.g., filled or stroke) that are scattered across the complete page or a portion of the page in order to create the perception of a spray effect on the designed background. Such a design, however, presents a challenge when raster image processing the background.
The RIP system is concerned with the quality of the rendered document. During the RIP process, different kinds of objects may be assigned to different tags and compressed differently. The associated tag switching creates a ghosting effect and additionally, the switching of compression methodology impacts the RIP performance in a negative manner.
Considering image backgrounds and 1-pixel or 2-pixel tine graphic noise, the lossy (e.g., JPEG) and lossless (e.g., RLE) compression switching significantly reduces the printing speed. In this example, from a perceptual quality perspective, the entire image along with the tiny vectors form a background, but the imager does not understand this and collects, flattens, and compresses each object separately.
In conventional RIP systems, the aforementioned tiny objects are considered as individual objects during a flattening operation, resulting in increased memory requirements and an increase in flattening time due to iterative flattening. An iterative flattening operation is then initiated, if the pre-allocated memory is being used for collecting the objects (e.g., the job has more number of objects in page). The memory is then exhausted. During iterative flattening, the collected objects are flattened in batch wise and then dumped to a temporary file, which is repeated until the RIP collects and completes the flattening process for all the objects in a page. Such conventional approaches result in a loss of perceptual quality in the rendered job and increased memory requirements, thereby causing a loss in productivity during the processing of an RIP job.